function fex(stra,strb,strc){
    var isReplace=false;//标志遍历一遍之后，时候找到可以替换的！默认值为false
    for(var i=0;i<stra.length;i++){//遍历a字符串
        var suba=stra.substr(i,strb.length);//从a的位置i截取一段跟b长度相等的串，判断是否相等
        if(suba==strb){//如果相等，替换成c
            stra=stra.substr(0,i)+strc+stra.substring(i+strb.length);
            //替换之后，需要充值for循环的i；
            i+=strc.length;  
            i--; 
            isReplace=true;//标志：有替换发生。
        }        
    }
    if(isReplace){//如果有替换发生，再来一次遍历替换。
        stra=fex(stra,strb,strc)
    }
    return stra;
}
console.log(fex("abcddabcdddddfdferedd","dd","d"));
//abcdabcdfdfered

//不能顺利输出的情况：C中包含了B， 例如 b为"ab" ,c为“abc”； 这种会变为死循环。
